Traditionally, a framework that manages a session is built in a case by case scenario. The application session must manage devices involved in a session directly in an application specific manner. Although devices on the communication ends can be of heterogeneous capacity, each device is considered to be for a separate entity, and must be managed so in the application. As a result, the managing methods (e.g., API) of each device are device-specific. Managing a session with one sending device and one receiving device is simple because only one source device and only one sink device need to be managed. Other methods of device managements involve multiple sink devices. However, these methods still treat the devices separately and do not provide a set of exposed, simple control methods to control multiple devices simultaneously as a group.